Define clean-install HA qualification - #889
Draft
ankitgoswami wants to merge 37 commits into
Draft
Conversation
🔐 Codex Security Review
Review SummaryOverall Risk: MEDIUM The new HA qualification procedure contains contradictory and insufficiently isolated test instructions. These defects could either prevent qualification entirely or allow important fencing paths to remain untested. Findings[MEDIUM] Qualification uses an unsupported installation flow
[MEDIUM] Failure gates do not isolate the fencing path being qualified
[MEDIUM] The no-overlap requirement contradicts the stalled plugin-call gate
NotesThe scoped diff changes documentation only. It introduces no direct authentication, SQL, protobuf, pool-address, or credential-handling code changes. Generated by Codex Security Review | |
This was referenced Aug 7, 2026
This was referenced Aug 7, 2026
ankitgoswami
force-pushed
the
ankitg/ha-clean-install-qualification
branch
from
August 7, 2026 18:44
be18ad0 to
1e137c7
Compare
ankitgoswami
force-pushed
the
ankitg/ha-clean-install-qualification
branch
2 times, most recently
from
August 7, 2026 19:11
ea992c4 to
eed7b91
Compare
ankitgoswami
force-pushed
the
ankitg/ha-clean-install-qualification
branch
2 times, most recently
from
August 7, 2026 19:36
1450e54 to
dece2e5
Compare
ankitgoswami
force-pushed
the
ankitg/ha-clean-install-qualification
branch
2 times, most recently
from
August 7, 2026 19:47
305bce3 to
664159b
Compare
ankitgoswami
force-pushed
the
ankitg/ha-clean-install-qualification
branch
from
August 7, 2026 19:52
664159b to
fd51051
Compare
ankitgoswami
force-pushed
the
ankitg/ha-clean-install-qualification
branch
2 times, most recently
from
August 7, 2026 20:11
4f4fb38 to
d567ef7
Compare
ankitgoswami
force-pushed
the
ankitg/ha-clean-install-qualification
branch
from
August 7, 2026 20:19
d567ef7 to
788fbde
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Reviewable diff: +216/-20 across 3 files (excludes generated, test, and story files).
Summary
Defines the evidence required before the fixed three-host Fleet application, database, DCS, and VIP profile is called supported at a recorded fleet scale and topology. The packaged release must pass the complete procedure separately on Debian arm64 Raspberry Pi hardware, Ubuntu amd64, and 64-bit Raspberry Pi OS arm64. Other derivatives remain installer-compatible but unqualified; update qualification and deferred Fleet Node, scheduler-recovery, and alert-delivery behavior are separate.
Stack: #887 -> #888 -> #889 -> #890 -> #891 -> #892. This documentation-only diff is relative to installer PR #888. Update qualification is deferred to #892.
How it works
For each required platform, operators install the same packaged release concurrently on three clean hosts and record the release bundle and deployment-manifest digests, container image identities, host-package versions, host hardware, miner count, plugin mix, connection topology, command backlog, and timing evidence. Results from different platforms cannot be combined into one passing report.
The checklist verifies reboot persistence, independent and combined Fleet/database host loss, acknowledged-write durability, direct host-pinned writer exclusivity, passive request rejection, demotion cancellation, observable firewall behavior, stale command completion rejection, an active curtailment target through failover, repeated failovers, and a 24-hour soak. Every injected Fleet, PostgreSQL, etcd, or VIP fault must also continue or resume MQTT curtailment and reach exact shed and restoration targets within 180 seconds. A controller-side command ledger requires every acknowledged PENDING command to succeed within 60 seconds and permits interruption failure only for commands proven PROCESSING when the fault began. Controller-clock probe windows conservatively bound possible VIP ownership, while a fleet-wide external recorder captures every command, plugin, and curtailment request independently of sampled health. Any evidence gap, overlapping old/new-holder work, or failed gate leaves that exact artifact and host profile unsupported.
flowchart LR P["Select one required platform"] --> I["Clean install"] I --> R["Reboot recovery"] R --> F["Failure matrix"] F --> C["Commands and curtailment"] C --> S["Repeated failover and soak"] S --> V{"Every gate passes?"} V -->|yes| N["Record this platform as qualified"] V -->|no| U["Keep this platform unsupported"]Areas of the code involved
deployment-files/ha/QUALIFICATION.mddeployment-files/ha/README.mddocs/rfcs/0002-active-passive-fleet-ha.mdKey technical decisions & trade-offs
Testing & validation